package demoIterator;

import java.sql.SQLOutput;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

/*
* Iterator
* 迭代器，是一个接口，我们无法直接使用，需要使用Iterator接口的实现类对象，
* 1.使用集合中的方法Iterator接口中的方法hasNext判断还有没有下一个元素
* 2。使用
* */
public class DemoIterator {
    public static void main(String[] args) {
        //创建一个集合对象
        Collection<String> coll = new ArrayList<>();
        //往集合中添加元素
        coll.add("yaoming");
        coll.add("kebi");
        coll.add("maidi");
        coll.add("aifusen");
        coll.add("麦迪");
        /*
        * 1.使用集合中的方法Iterator（）获取迭代器的实现类对象，使用Iterator
        * 接口接收（多态）注意：
        * Iterator<E>接口也是有泛型的，迭代器的泛型跟着集合走，集合是什么泛型，
        * 迭代器就是什么泛型
        *
        * */
        //多态 接口            实现类对象
        Iterator<String> it = coll.iterator();

        //使用Iterator接口中的方法 hasNext判断还有没有下一个元素
        /*boolean b = it.hasNext();
        System.out.println(b);//true
        String s = it.next();
        System.out.println(s);
        b = it.hasNext();
        System.out.println(b);*/
/*
* 不知道集合中有多少元素，使用while循环
* 循环结束的条件，hasNext方法返回false
*
* */
        while (it.hasNext()){
           String e = it.next();
            System.out.println(e);
        }
        System.out.println("----------------");
        for (Iterator<String> it2 =coll.iterator(); it2.hasNext();){
            String e =it2.next();
            System.out.println(e);
        }
    }
}
